<?php

// +----------------------------------------------------------------------
// | Library for ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2018 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://library.thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
// | github 仓库地址 ：https://github.com/zoujingli/ThinkLibrary
// +----------------------------------------------------------------------

namespace util;

/**
 * Emoji 表情处理工具
 * Class Emoji
 * @package util
 */
class Emoji
{
    /**
     * Emoji 表情编码
     * @param string $content
     * @return string
     */
    public static function encode($content)
    {
        return preg_replace_callback('/[\x{1F600}-\x{1F64F}]|[\x{1F300}-\x{1F5FF}]|[\x{1F680}-\x{1F6FF}]|[\x{1F1E0}-\x{1F1FF}]|[\x{2600}-\x{26FF}]|[\x{2700}-\x{27BF}]/u', function ($matches) {
            return '[EMOJI:' . base64_encode($matches[0]) . ']';
        }, $content);
    }

    /**
     * Emoji 表情解码
     * @param string $content
     * @return string
     */
    public static function decode($content)
    {
        return preg_replace_callback('/\[EMOJI:([^\]]+)\]/', function ($matches) {
            return base64_decode($matches[1]);
        }, $content);
    }

    /**
     * 清除 Emoji 表情
     * @param string $content
     * @return string
     */
    public static function clear($content)
    {
        return preg_replace('/[\x{1F600}-\x{1F64F}]|[\x{1F300}-\x{1F5FF}]|[\x{1F680}-\x{1F6FF}]|[\x{1F1E0}-\x{1F1FF}]|[\x{2600}-\x{26FF}]|[\x{2700}-\x{27BF}]/u', '', $content);
    }
}